/**
 * 启动类加载器，Bootstrap，加载rt.jar包，里面包含Object，ArrayList等jar包
 *  扩展类加载器，sun.misc.Launcher，加载扩展的jar包，在D:\JDK7\jre\lib\ext下。
 *  应用程序类加载器，sun.misc.Launcher，加载自己写的程序
 *  加载顺序：Bootstrap(加载必要文件，比如Object等) -> 扩展类加载器 -> 应用程序类加载器
 */
public class MyObject {
    public static void main(String[] args) {
        Object object = new Object();
//        System.out.println(object.getClass().getClassLoader().getParent().getParent());   // Exception in thread "main" java.lang.NullPointerException
        System.out.println(object.getClass().getClassLoader().getParent());   // Exception in thread "main" java.lang.NullPointerException
        System.out.println(object.getClass().getClassLoader());   // 启动类加载器，Bootstrap,所以为空null

        MyObject myObject = new MyObject();
        System.out.println(myObject.getClass().getClassLoader().getParent().getParent());  // null
        System.out.println(myObject.getClass().getClassLoader().getParent());  // 扩展类加载器，sun.misc.Launcher$ExtClassLoader@1b6d3586
        System.out.println(myObject.getClass().getClassLoader()); // 应用程序类加载器，sun.misc.Launcher$AppClassLoader@18b4aac2
    }
}
